const Mock = require('mockjs')

module.exports = (app) => {
  // 用户登录
  app.post('/api/user/login', (req, res) => {
    res.send({
      code: 0,
      msg: 'ok',
      data: {
        id: 1000,
        username: 'admin',
        token: 'fewlkfjewlkfewklfewklfewklfewjlfewlk',
        roleid: 10,
        routes: [
          '/info/dashoard',
          '/sys/user',
          '/sys/role',
          '/sys/auth',
          '/film/list',
          '/film/add'
        ]
      }
    })
  })

  // 用户列表
  app.get('/api/user/list', (req, res) => {
    let page = req.query.page ? Number(req.query.page) : 1
    let size = req.query.size ? Number(req.query.size) : 10
    const users = Mock.mock({
      [`users|${size}`]: [
        {
          'id|+1': page * size,
          username: '@name',
          realname: '@cname',
          'age|18-100': 18,
          'sex|1': [1, 2],
          birthday: '@date',
          avatar: 'http://video.1314000.cn/face.png',
          city: ['北京', '昌平'],
          address: '北京昌平地区沙河大桥'
        }
      ]
    })
    res.send({
      code: 0,
      msg: 'ok',
      data: {
        ...users,
        total: 100
      }
    })
  })

  // 检查用户名是否唯一
  app.post('/api/user/exist', (req, res) => {
    res.send({
      code: 0,
      msg: 'ok',
      // 1存在，0不存在
      data: 0
    })
  })

  // 上传头像
  app.post('/api/user/avatar', (req, res) => {
    res.send({
      code: 0,
      msg: 'ok',
      data: {
        // 用于回显的地址
        imgUrl: 'http://video.1314000.cn/face.png',
        // 用于存储于数据库中的地址
        filepath: './uploads/face.png'
      }
    })
  })

  // 新增用户
  app.post('/api/user/create', (req, res) => {
    res.send({
      code: 0,
      msg: 'ok',
      // 新增返回的数据结果情况
      // 1.返回新增的用户在数据表中的id值
      // 2.返回新增用户的的记录数据，数据它是包含id值的
      data: 10
    })
  })

  // 批量删除指定用户
  app.post('/api/user/delbatch', (req, res) => {
    res.send({
      code: 0,
      msg: 'ok',
      // 1表示成功，非1为失败
      data: 1
    })
  })

  // 删除单个用户记录
  app.delete('/api/user/:id', (req, res) => {
    res.send({
      code: 0,
      msg: 'ok',
      // 1表示成功，非1为失败
      data: 1
    })
  })

  // 根据用户id列表返回它对应的用户数据列表
  app.post('/api/user/ids', (req, res) => {
    const data = Mock.mock({
      'data|10': [
        {
          'id|+1': 1,
          username: '@name',
          realname: '@cname',
          'age|18-100': 18,
          'sex|1': [1, 2],
          birthday: '@date',
          avatar: './uploads/face.png',
          imgUrl: 'http://video.1314000.cn/face.png',
          city: ['北京', '昌平'],
          address: '北京昌平地区沙河大桥'
        }
      ]
    })
    res.send({
      code: 0,
      msg: 'ok',
      ...data
    })
  })

  // 根据用户id返回对应的用户数据,此数据没有密码
  app.get('/api/user/:id', (req, res) => {
    res.send({
      code: 0,
      msg: 'ok',
      data: {
        id: 20,
        username: 'Angela Wilson',
        realname: '谭涛',
        age: 60,
        sex: 2,
        birthday: '2021-12-22',
        avatar: './uploads/face.png',
        imgUrl: 'http://video.1314000.cn/face.png',
        city: ['北京', '昌平'],
        address: '北京昌平地区沙河大桥'
      }
    })
  })

  // 根据用户id来修改用户信息
  app.put('/api/user/:id', (req, res) => {
    res.send({
      code: 0,
      msg: 'ok',
      data: 1
    })
  })
}
